#!/bin/ksh

user=$(whoami)
appln=
file_type=
ERROR="Error"
INSTALL_DIR=/usr/OV
LOCAL_DIR=$(pwd)

INSTALL_EXEC_DIR=$INSTALL_DIR/bin
INSTALL_REGIS_DIR=$INSTALL_DIR/registration/C
INSTALL_FIELDS_DIR=$INSTALL_DIR/fields/C
INSTALL_SYMBOLS_DIR=$INSTALL_DIR/symbols/C
INSTALL_BITMAP_DIR=$INSTALL_DIR/bitmaps/C
INITIAL_HELP_DIR=$INSTALL_DIR/help/C
INSTALL_CONF_DIR=$INSTALL_DIR/conf
INSTALL_MIBS_DIR=$INSTALL_DIR/snmp_mibs

LOCAL_EXEC_DIR=$LOCAL_DIR/bin
LOCAL_REGIS_DIR=$LOCAL_DIR/registration
LOCAL_FIELDS_DIR=$LOCAL_DIR/fields
LOCAL_SYMBOLS_DIR=$LOCAL_DIR/symbols
LOCAL_BITMAP_DIR=$LOCAL_DIR/bitmaps
LOCAL_HELP_DIR=$LOCAL_DIR/help
LOCAL_CONF_DIR=$LOCAL_DIR/conf
LOCAL_MIBS_DIR=$LOCAL_DIR/snmp_mibs
LOCAL_TMP_DIR=$LOCAL_DIR/tmp

file_exists()
{
   file=`ls -l | /usr/bin/grep -w $1`
   if [ "$file" = "" ] ; then
      print "File << $1 >> not found.\nINSTALLATION ABORTED ...\n"
      exit
   else
      return 0
   fi
}

file_install()
{
   file=`ls $2 | /usr/bin/grep -w $1`
   if [ "$file" = "" ] ; then
      copy $1 $2
   else
      print "Moving file << $2/$1 >> to << $2/$1.old >>"
      move "$2/$1" "$2/$1.old"
      copy $1 $2
   fi
   if [ $file_type = "binary" ] ; then
      chmod 555 $1
   else
      chmod 444 $1
   fi
}

file_append()
{
   file=`ls $2 | /usr/bin/grep -w ovw_fields`
   if [ "$file" = "" ] ; then
      print "File << ovw_fields >> not found.\nINSTALLATION ABORTED ...\n"
      exit
   else
      print "Copying file << $2/ovw_fields >> to << $2/ovw_fields.IBM9729 >>"
      copy $2/ovw_fields $2/ovw_fields.old
      chmod +w $2/ovw_fields
      cat $1 >> $2/ovw_fields
   fi
}

check_nv_proc()
{
   appln="/usr/OV/bin/nv6000 -$file_type"
   psresult=`ps -ef | /usr/bin/grep -v grep | /usr/bin/grep -w "$appln"`
   while [ "$psresult" != "" ]
   do
      psresult=`ps -ef | /usr/bin/grep -v grep | /usr/bin/grep -w "$appln"`
   done
}

check_ov_proc()
{
   appln="ovwdb"
   psresult=`ps -ef | /usr/bin/grep -v grep | /usr/bin/grep -w "$appln"`
   if [ "$psresult" = "" ] ; then
        appln="ovstart"
        /usr/OV/bin/ovstart
        psresult=`ps -ef | /usr/bin/grep -v grep | /usr/bin/grep -w "$appln"`
        while [ "$psresult" != "" ]
        do
        psresult=`ps -ef | /usr/bin/grep -v grep | /usr/bin/grep -w "$appln"`
        done
   fi
}

check_error()
{
   error=`/usr/bin/grep -w $ERROR $1`
   if [ "$error" = "" ] ; then
      rm $1
      return 0
   else
      sleep 1
      print "Error in executing << nv6000 -$file_type >>. See file $1 in directory ./tmp.\nINSTALLATION ABORTED ...\n"
      exit
   fi
}

clear
if [ $user != "root" ] ; then
   print "\nUser << $user >> does not superuser permissions to install the application.\nINSTALLATION ABORTED ....\n"
   return 1
   else
   print "\n<<< INSTALLING NetView/6000 SPECIFIC IBM9729 DEVICE MANAGEMENT APPLICATIONS >>>\n"
   sleep 1
fi

clear
print "********************************************************************************\n"
print "             INSTALLING APPLICATION BINARY FILES. PLEASE WAIT....\n"
file_type="binary"
cd $LOCAL_EXEC_DIR
sleep 1

file_exists IBM9729_EVENT
file_install IBM9729_EVENT $INSTALL_EXEC_DIR

file_exists IBM9729_TRAP
file_install IBM9729_TRAP $INSTALL_EXEC_DIR

file_exists IBM9729_DISC
file_install IBM9729_DISC $INSTALL_EXEC_DIR

file_exists IBM9729_POLL
file_install IBM9729_POLL $INSTALL_EXEC_DIR

file_exists IBM9729_CONFIG_CHANGE
file_install IBM9729_CONFIG_CHANGE $INSTALL_EXEC_DIR

file_exists IBM9729_POLL_RESTART
file_install IBM9729_POLL_RESTART $INSTALL_EXEC_DIR

file_exists addtraps.9729
file_install addtraps.9729 $INSTALL_EXEC_DIR

sleep 1
print "\n             SUCCESSFULLY INSTALLED APPLICATION BINARY FILES\n"
print "********************************************************************************\n"

sleep 1

clear
print "********************************************************************************\n"
print "          INSTALLING APPLICATION REGISTRATION FILES. PLEASE WAIT....\n"
file_type="registration"
cd $LOCAL_REGIS_DIR
sleep 1

file_exists IBM9729_EVENT_REGIS
file_install IBM9729_EVENT_REGIS $INSTALL_REGIS_DIR

file_exists IBM9729_TRAP_REGIS
file_install IBM9729_TRAP_REGIS $INSTALL_REGIS_DIR

file_exists IBM9729_DISC_REGIS
file_install IBM9729_DISC_REGIS $INSTALL_REGIS_DIR

file_exists IBM9729_POLL_REGIS
file_install IBM9729_POLL_REGIS $INSTALL_REGIS_DIR

file_exists IBM9729_CONFIG_CHANGE_REGIS
file_install IBM9729_CONFIG_CHANGE_REGIS $INSTALL_REGIS_DIR

file_exists IBM9729_POLL_CHANGE_REGIS
file_install IBM9729_POLL_CHANGE_REGIS $INSTALL_REGIS_DIR

sleep 1
print "\n         SUCCESSFULLY INSTALLED APPLICATION REGISTRATION FILES\n"
print "********************************************************************************\n"

sleep 1

clear
print "********************************************************************************\n"
print "             INSTALLING APPLICATION FIELD FILES. PLEASE WAIT....\n"
file_type="field"
cd $LOCAL_FIELDS_DIR
sleep 1

file_exists IBM9729_fields
file_install IBM9729_fields $INSTALL_FIELDS_DIR

file_exists 9729_ovw_fields
file_append 9729_ovw_fields $INSTALL_FIELDS_DIR

sleep 1
print "\n            SUCCESSFULLY INSTALLED APPLICATION FIELD FILES\n"
print "********************************************************************************\n"

sleep 1

clear
print "********************************************************************************\n"
print "            INSTALLING APPLICATION SYMBOL FILES. PLEASE WAIT....\n"
file_type="symbol"
cd $LOCAL_SYMBOLS_DIR
sleep 1

file_exists Optic
file_install Optic $INSTALL_SYMBOLS_DIR

sleep 1
print "\n           SUCCESSFULLY INSTALLED APPLICATION SYMBOL FILES\n"
print "********************************************************************************\n"

sleep 1

clear
print "********************************************************************************\n"
print "            INSTALLING APPLICATION BITMAP FILES. PLEASE WAIT....\n"
file_type="bitmap"
cd $LOCAL_BITMAP_DIR
sleep 1

file_exists IBM9729Card
file_install IBM9729Card $INSTALL_BITMAP_DIR

file_exists IBM9729Card.38.p
file_install IBM9729Card.38.p $INSTALL_BITMAP_DIR

file_exists IBM9729Card.38.m
file_install IBM9729Card.38.m $INSTALL_BITMAP_DIR

file_exists IBM9729Oper
file_install IBM9729Oper $INSTALL_BITMAP_DIR

file_exists IBM9729Oper.38.p
file_install IBM9729Oper.38.p $INSTALL_BITMAP_DIR

file_exists IBM9729Oper.38.m
file_install IBM9729Oper.38.m $INSTALL_BITMAP_DIR

file_exists IBM9729Amp
file_install IBM9729Amp $INSTALL_BITMAP_DIR

file_exists IBM9729Amp.38.p
file_install IBM9729Amp.38.p $INSTALL_BITMAP_DIR

file_exists IBM9729Amp.38.m
file_install IBM9729Amp.38.m $INSTALL_BITMAP_DIR

file_exists IBM9729Host
file_install IBM9729Host $INSTALL_BITMAP_DIR

file_exists IBM9729Host.20.p
file_install IBM9729Host.20.p $INSTALL_BITMAP_DIR

file_exists IBM9729Host.20.m
file_install IBM9729Host.20.m $INSTALL_BITMAP_DIR

file_exists IBM9729Host.26.p
file_install IBM9729Host.26.p $INSTALL_BITMAP_DIR

file_exists IBM9729Host.26.m
file_install IBM9729Host.26.m $INSTALL_BITMAP_DIR

file_exists IBM9729Host.32.p
file_install IBM9729Host.32.p $INSTALL_BITMAP_DIR

file_exists IBM9729Host.32.m
file_install IBM9729Host.32.m $INSTALL_BITMAP_DIR

file_exists IBM9729Host.38.p
file_install IBM9729Host.38.p $INSTALL_BITMAP_DIR

file_exists IBM9729Host.38.m
file_install IBM9729Host.38.m $INSTALL_BITMAP_DIR

file_exists IBM9729Host.44.p
file_install IBM9729Host.44.p $INSTALL_BITMAP_DIR

file_exists IBM9729Host.44.m
file_install IBM9729Host.44.m $INSTALL_BITMAP_DIR

file_exists IBM9729Host.50.p
file_install IBM9729Host.50.p $INSTALL_BITMAP_DIR

file_exists IBM9729Host.50.m
file_install IBM9729Host.50.m $INSTALL_BITMAP_DIR

sleep 1
print "\n           SUCCESSFULLY INSTALLED APPLICATION BITMAP FILES\n"
print "********************************************************************************\n"

sleep 1

clear
print "********************************************************************************\n"
print "             INSTALLING APPLICATION HELP FILES. PLEASE WAIT....\n"
file_type="help"
mkdir $INITIAL_HELP_DIR/IBM9729
mkdir $INITIAL_HELP_DIR/IBM9729/OVW
mkdir $INITIAL_HELP_DIR/IBM9729/OVW/Dialogs
INSTALL_HELP_DIR=$INITIAL_HELP_DIR/IBM9729/OVW/Dialogs
cd $LOCAL_HELP_DIR
sleep 1

file_exists IBM9729_ADD_HOST
file_install IBM9729_ADD_HOST $INSTALL_HELP_DIR

file_exists IBM9729_ADD_REMOTE_CONN
file_install IBM9729_ADD_REMOTE_CONN $INSTALL_HELP_DIR

file_exists IBM9729_DESCRIBE_AMPLIFIER
file_install IBM9729_DESCRIBE_AMPLIFIER $INSTALL_HELP_DIR

file_exists IBM9729_DESCRIBE_DIAGNOSTIC
file_install IBM9729_DESCRIBE_DIAGNOSTIC $INSTALL_HELP_DIR

file_exists IBM9729_DESCRIBE_DUAL_FIBER_CONN
file_install IBM9729_DESCRIBE_DUAL_FIBER_CONN $INSTALL_HELP_DIR

file_exists IBM9729_DESCRIBE_HOST
file_install IBM9729_DESCRIBE_HOST $INSTALL_HELP_DIR

file_exists IBM9729_DESCRIBE_LRC
file_install IBM9729_DESCRIBE_LRC $INSTALL_HELP_DIR

file_exists IBM9729_DESCRIBE_REMOTE_CONN
file_install IBM9729_DESCRIBE_REMOTE_CONN $INSTALL_HELP_DIR

file_exists IBM9729_DESCRIBE_SINGLE_FIBER_CONN
file_install IBM9729_DESCRIBE_SINGLE_FIBER_CONN $INSTALL_HELP_DIR

sleep 1
print "\n             SUCCESSFULLY INSTALLED APPLICATION HELP FILES\n"
print "********************************************************************************\n"

sleep 1

clear
print "********************************************************************************\n"
print "          INSTALLING APPLICATION CONFIGURATION FILES. PLEASE WAIT....\n"
file_type="configuration"
cd $LOCAL_CONF_DIR
sleep 1

file_exists IBM9729_CONF
file_install IBM9729_CONF $INSTALL_CONF_DIR

sleep 1
print "\n         SUCCESSFULLY INSTALLED APPLICATION CONFIGURATION FILES\n"
print "********************************************************************************\n"

sleep 1

clear
print "********************************************************************************\n"
print "             INSTALLING APPLICATION MIB FILES. PLEASE WAIT....\n"
file_type="mib"
cd $LOCAL_MIBS_DIR
sleep 1

file_exists IBM9729.mib
file_install IBM9729.mib $INSTALL_MIBS_DIR

sleep 1
print "\n             SUCCESSFULLY INSTALLED APPLICATION MIB FILES\n"
print "********************************************************************************\n"

sleep 1

clear
print "********************************************************************************\n"
print "        INCORPORATING IBM9729 APPLICATION INTO NetView/6000. PLEASE WAIT....\n"
check_ov_proc

file_type="fields"
/usr/OV/bin/nv6000 -fields >> $LOCAL_TMP_DIR/nvfields
check_nv_proc
check_error $LOCAL_TMP_DIR/nvfields

file_type="config"
/usr/OV/bin/nv6000 -config >> $LOCAL_TMP_DIR/nvconfig
check_nv_proc
check_error $LOCAL_TMP_DIR/nvconfig

file_type="verify"
/usr/OV/bin/nv6000 -verify >> $LOCAL_TMP_DIR/nvverify
check_nv_proc
check_error $LOCAL_TMP_DIR/nvverify

/usr/OV/bin/addtraps.9729

sleep 1
print "         SUCCESSFULLY INCORPORATED IBM9729 APPLICATION INTO NetView/6000.\n"
print "********************************************************************************\n"

sleep 1
clear
print "           IBM9729 APPLICATION INSTALLATION SUCCESSFULLY COMPLETED !!\n"
